/***************************************************************************
 创建者: 华磊
 开始时间: 2018.8.14
 copyright: (C) 华友高科
 修改说明: (每次有修改就添加一条，带有 修改人，修改时间，修改描述)
 example (1) hualei 2017.5.8 类的具体实现代码编写

 ***************************************************************************
 *  @file x.h
 *  功能:
 *
 *                                                                         *
 ***************************************************************************/
#ifndef RUNINSTRUCTIONLOGIC_H
#define RUNINSTRUCTIONLOGIC_H
#include "runinstruction.h"
#include "programset.h"
#include "instructionEnum.h"
#include "robotio.h"

class ProgramEngine;
/**
 * @brief The RunInstructionLogic class  指令逻辑处理类
 */
class RunInstructionLogic
{
public:
    RunInstructionLogic(int robotIdIn,ProgramSet* programSetIn,RobotIo* ioControllerIn,ProgramEngine* programEngineIn);

public:
//    /**
//     * @brief startRun              获取run指令后的操作
//     * @param programNum            正在运行的program的Number
//     * @param runProgramName        ｒｕｎ程序名称
//     * @return                      返回１表示运行到了最后一行
//     */
//    int startRun(int programNum,QString runProgramName);
private:

    /**
     * @brief addMsg  , 添加消息反馈
     * @param messageLevel
     * @param componentName
     * @param messageType
     * @param messageCode
     * @param robotId
     * @param parameter1
     * @param parameter2
     * @param parameter3
     * @param parameter4
     */
    void addMsg( int messageLevel,
                 std::string componentName,
                 std::string messageType,
                 int messageCode,
                 int robotId,
                 int parameter1 = 0,
                 int parameter2 = 0,
                 int parameter3 = 0,
                 int parameter4 = 0,
                 QString message= "");

private:
    int robotId;
    ProgramSet* programSet;
    RobotIo* ioController;
    ProgramEngine* programEngine;
};

#endif // RUNINSTRUCTIONLOGIC_H
